package com.dyz.wsw.domain.admin.repository.persist;

import com.dyz.wsw.domain.admin.pojo.UserLoginInfoVO;
import reactor.core.publisher.Mono;

import java.time.LocalDateTime;

/**
 * @author dyz
 * Time 2024/7/1 19:16
 */
public interface UserRepository {

    /**
     * 更新登录次数
     * @param id           用户id
     * @param loginCount   登录次数
     * @param lastLoginIp  最后登录IP
     * @param gmtLastLogin 最后登录时间
     * @return 无返回值
     */
    Mono<Void> updateLastLogin(Long id, Integer loginCount, String lastLoginIp, LocalDateTime gmtLastLogin);


    /**
     * 根据用户名查找用户登录信息
     * @param username 用户名
     * @return 用户登录信息
     */
    Mono<UserLoginInfoVO> findUserLoginInfoByUsername(String username);


    /**
     * 更新头像
     * @param id 用户id
     * @param avatar 头像地址
     * @return 无返回值
     */
    Mono<Void> updateAvatar(Long id, String avatar);





}
